package com.juli.school.app.controller.module;

import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.google.common.base.Strings;
import com.juli.school.dao.entity.Pub;
import com.juli.school.service.CommonService;
import com.juli.school.service.enums.EnumModule;
import com.juli.school.service.impl.PubService;
import com.juli.school.utils.core.model.CommonResp;
import com.juli.school.utils.core.model.ListResp;

/**
 * @Description: 首页查询服务
 * @author gaoxiang
 * @date 2018年1月17日 下午11:46:24
 */ 
@RequestMapping("home")
@Controller
public class HomeController {
	
	@Resource
	PubService pubService;
	
	/**
	 * @Description: 增量查询信息列表
	 * @author gaoxiang
	 * @date 2017年9月16日 下午10:27:17
	 */
	@RequestMapping("/list")
	@ResponseBody CommonResp<ListResp<Pub>> list(Pub req) {
		return pubService.list(req);
	}
	
	/**
	 * @Description: 获取信息详情
	 * @author gaoxiang
	 * @date 2018年1月17日 下午11:04:56
	 */
	@RequestMapping("detail")
	@ResponseBody Object detail(Pub req) {
		CommonResp<Object> commonResp = new CommonResp<Object>();
		if(Strings.isNullOrEmpty(req.getSnStamp())) {
			commonResp.fail("snStamp不可为空");
			return commonResp;
		}
		if(Strings.isNullOrEmpty(req.getType())) {
			commonResp.fail("模块类型不可为空");
			return commonResp;
		}
		EnumModule enumModule = EnumModule.codeOf(req.getType());
		if(enumModule == null) {
			commonResp.fail("未知模块类型");
			return commonResp;
		}
		CommonService<? extends Pub> service = enumModule.getService();
		return service.detail(req);
	}
	
}
